<?php

// admin公共文件 辅助函数
// admin公共文件
/**
 * @param $url 跳转url
 * @param string $title 名字
 * @return string //onclick="xadmin.add_tab('添加用户','/index/index/index')"
 * onclick="xadmin.open('最大化','http://www.baidu.com','','',true)">
 * onclick="xadmin.open('弹出自动宽高','http://www.baidu.com')">
 * onclick="xadmin.open('弹出指定宽高','http://www.baidu.com',500,300)">
 * onclick="xadmin.add_tab('在tab打开','member-list.html')">
 * onclick="xadmin.add_tab('在tab打开刷新','member-del.html',true)">
 */
function open($title='新标签',$url,$width=false,$heigth=false,$flag=false)
{
    $xadmin="xadmin.open('".$title."','".url($url)."'";
    if($width||$width==''){
        if(is_numeric($width) ){
            $xadmin.=",".$width."";
        }else{
            $xadmin.=",''";
        }
    }
    if($heigth||$heigth==''){
        if(is_numeric($width) ){
            $xadmin.=",".$heigth."";
        }else{
            $xadmin.=",''";
        }
    }
    if($flag){
        $xadmin.=",true";
    }
    $xadmin.=")";
    return $xadmin;
}
function add_tab($title='新标签',$url,$flag=false)
{
    $xadmin="xadmin.add_tab('".$title."','".url($url)."'";
    if($flag){
        $xadmin.=",true";
    }
    $xadmin.=")";
    return $xadmin;
}

/**
 * 获取后端configs表参数，并存入缓存中，若参数不存在则直接返null
 * @param mixed ...$params 可变参数
 * @return mixed|null 返回配置项数组或者值
 */
function getMyConfig(...$params){
    $myConfig = \think\facade\Cache::remember('myConfig', function(){
        $all=\think\Db::table('configs')->select();
        $format_data=[];
        foreach ($all as $d){
            $format_data[$d['type']][$d['key']]=$d['value'];//格式化数据
        }
        return $format_data;
    });
    $res=$myConfig;
    try{
        foreach ($params as $param){
            $res=$res[$param];
        }
    }catch (\Exception $e){//有可能获取参数数组值不存在，直接返回null
        return null;
    }
    return $res;
}